var str = 'abcde'

console.log((str.length))

var num = 123
console.log(num.toString())

var bool = true

var un = undefined

var nu = null

// 定义的结果是唯一的，即使值相同，两个不同的Symbol也不会相同
var key1 = Symbol('1')
var key2 = Symbol('1')
console.log(key1 == key2)

var obj = {
	// 键值对
	name: '黄老板',
	gFriend: '小黄'
	// Map
	// [1,2]:"123"
}
obj.bFriend = "小绿"


// 删除对象属性
delete obj.bFriend

// Obj类型属性名定死
// var map = new Map()
// map = {
//     [1,2]: "123"
// }

var arr = [1, 2, 3, 4]
// 通过下标访问
console.log(arr[2])
// 数组尾部添加元素
arr.push(5)
console.log(arr);
// 数组首部添加元素
arr.unshift(0)
// 任意位置添加
arr[3] = 33
// 数组首部弹出
arr.pop()
// 数组首部出队
arr.shift()

// 使用构造函数创建数组
const arr2 = (new Array(7)).fill(1)
console.log(arr2);

// for循环遍历数组
// for (let i = 0; i < arr2.length; i++) {
// 	console.log(arr2[i],i);
// }

// forEach遍历，只有数组有，参数为一个回调函数,回调函数中，有两个参数，一个是元素值，一个元素索引
// arr2.forEach((item,index)=>{
// 	console.log(item,index);
// })

// map方法遍历， map可以处理数组的元素，并返回一个新数组
console.log(arr2.map((item,index)=>{
	// console.log(item,index);
	return item + 1;
}))


// 二维数组
const arr3 = [
	[1,2,3,4],
	[1,2,3,4],
	[1,2,3,4],
	[1,2,3,4]
]

// 二维数组初始化
const arr4 = new (new Array(7)).fill([])  //传入的为引用	